import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-12-08
 * Time: 10:49
 */

//排序子序列
//https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471?orderByHotValue=1&page=1&onlyReference=false
public class SortSubsequences {
    //牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //获取输入的值的个数
        int n = scanner.nextInt();
        int[] array = new int[n+1];
        //获取值 到数组当中
        for (int i = 0; i < n; i++) {
            //每次获取一个值
            array[i] = scanner.nextInt();
        }

        //获取完数组之后 遍历数组
        int i = 0;
        int count = 0; //子序列的计数器
        while (i < n){
            //比较前后的值 然后计数 有几个子序列 无非就是三种情况
            if (array[i] < array[i+1]){ //存在这样的条件开始
                while (i < n && array[i] < array[i+1]){
                    //循环的存在这样的条件
                    i++; //往后走
                }
                //跳出循环之后 说明是第一个子序列已经走完
                count++;
                i++;  //走到下一个子序列的开始
            } else if (array[i]==array[i+1]) {
                //相等了 只需要 ++
                i++;
            }else {
                //此时存在一个问题 当前i走到数组的最后一个数的时候 那么 存在 【i+1】数组越界问题
                //单纯的加上 i<n 避免不了问题  给数组大小加上一个位置 存放0
                //并且 题目数组中数的大小范围(1 ≤ A_i ≤ 10^9) 没有0 那么暗示解体思路将用到0
                while (i<n && array[i] > array[i+1]){
                    i++;
                }
                count++;
                i++;
            }
        }
        System.out.println(count);
    }
}
